1. Technical Field
The present invention relates in general to the data processing systems and in particular to microprocessors. Still more particularly, the present invention relates to an improved method, system, and computer program product for invoking processor-serviced functions on a synergistic processing element (SPE) running in isolated mode.
2. Description of the Related Art
In conventional cell broadband engine architecture (also referred to as cell processors), a processor typically includes four main components: external input/output (I/O) structures; a main processor referred to as the power processing element (PPE); a number of fully-functional co-processors referred to as synergistic processing elements (SPEs); and a high-bandwidth circular data bus referred to as the element interconnect bus (EIB). Cell processors couple a PPE to multiple SPEs via the EIB, thereby increasing system performance while providing access to both a main memory and external data storage devices. The PPE thus acts as a controller for the SPEs, which handle most of the computational workload, and the PPE starts, stops, interrupts, and/or schedules processes executed by the SPEs.
Cell processors include multiple modes of operation (e.g., isolated mode and non-isolated mode) that permit access to different levels of memory for processes executed by the SPEs or the PPE. Conventional SPEs each contain a small local store (LS) memory area, which is visible to the PPE and can be directly accessed by different processes/applications. However, the LS does not operate like a conventional CPU cache, since the LS is not transparent to software and does not include hardware structures capable of predicting which data to load. Similarly, an SPE can not directly access system memory. Although system memory addresses for both the PPE and SPE are typically expressed as 64-bit values, LS addresses internal to the SPE are typically expressed as 32-bit words.
Conventional methods for invoking PPE-serviced functions from an SPE C language library are based on the assumption that the PPE will have fall read/write access to the LS of the SPE (i.e., when the SPE is executing in non-isolated mode). However, when an SPE is executing in isolated mode, the majority of the LS is not accessible to other processors, with the exception of a small open area. Consequently, an improved method for invoking PPE-serviced functions on a SPE running in isolated mode is needed.